package com.rabbitmq.ChattingRoom.util.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.List;

public class JSONUtil {
    public static String stringify(Object obj){
        return JSON.toJSONString(obj);
    }

    public static String stringify(Object o,boolean isSerialize){
        if(isSerialize) {
            return JSON.toJSONString(o
                    ,SerializerFeature.WriteMapNullValue   // 是否输出null字段
                    ,SerializerFeature.WriteNullNumberAsZero    // 当字段类型为数值且为 null 时,输出 0 而不是null
                    ,SerializerFeature.WriteNullListAsEmpty     // 当字段类型为数组且为空时,输出 [] 而不是null
                    ,SerializerFeature.WriteNullStringAsEmpty   // 当字段类型为字符串且为 null 时, 输出"" ，而不是null
                    ,SerializerFeature.WriteNullBooleanAsFalse  // 当字段类型为boolean且为 null 时, 输出false ,而不是null
            );
        }else {
            return stringify(o);
        }
    }

    public static <T>T parse(String str,Class<T> tClass){
        return JSON.parseObject(str,tClass);
    }

    public static List<?> parseArray(String str, Class<?> tClass){
        return JSON.parseArray(str,tClass);
    }
}
